home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 6 / CU Amiga Magazine's Super CD-ROM 06 (1996)(EMAP Images)(GB)(Track 1 of 4)[!][issue 1997-01].iso / cucd / online / fidonetts / 3csrc.lzh / 3mail.h < prev    next >
C/C++ Source or Header  |  1992-05-02  |  3KB  |  102 lines

  1. /* 3mail.h
  2.  *
  3.  * type 3 ASCII include file
  4.  * Public Domain from M. Kimes.  You're welcome.
  5.  *
  6.  */
  7.  
  8. /* types */
  9.  
  10. typedef struct __tag3__ {   /* singly linked list */
  11.     char *tag;
  12.     char *data;
  13.     struct __tag3__ *next;
  14. } TAG3;
  15.  
  16. typedef struct __mheader3__ {
  17.     char *from;
  18.     char *to;
  19.     char *subj;
  20.     char *date;
  21.     char *area;
  22.     char *id;
  23.     char *ref;
  24.     TAG3 *head; } MHDR3;
  25.  
  26. typedef struct __pheader3__ {
  27.   char *from;
  28.   char *to;
  29.   char *creator;
  30.   char *pword;
  31.   char *area;
  32.   TAG3 *head;
  33. } PHDR3;
  34.  
  35. /* constants */
  36.  
  37. #define BLKSIZE3    4096
  38. #define MAXERR3     9
  39. #define MAXRESYNC3  15
  40. #define ASCII3ID    "3ASCII"
  41.  
  42.  /* errors returned in *error */
  43.  
  44. #define NOERR3      0
  45. #define NOMEM3      1
  46. #define NOOPEN3     2
  47. #define READERR3    3
  48. #define BADPKTHDR3  4
  49. #define BADMSGHDR3  5
  50. #define NOTPKT3     6
  51. #define BADWRITE3   7
  52. #define BADSEEK3    8
  53. #define EOP3        9
  54.  
  55. /* functions for reading a type 3 ASCII packet (see 3mailin.c) */
  56.  
  57. int     open_3pkt         (int fhandle,char *fname,int *error);
  58. int     close_3pkt        (int fhandle);
  59. PHDR3 * free_3pkthdr      (PHDR3 *cpkt);
  60. MHDR3 * free_3msghdr      (MHDR3 *cmsg);
  61. PHDR3 * create_3pkthdr    (void);
  62. MHDR3 * create_3msghdr    (void);
  63. PHDR3 * read_3pkthdr      (int fhandle,PHDR3 *cpkt,int *error);
  64. MHDR3 * read_3msghdr      (int fhandle,MHDR3 *cmsg,int *error);
  65. int     read_3msgtext     (int fhandle,char *msg,int buflen,int *error);
  66. long    find_next_3msg    (int fhandle,int *error);
  67. long    process_3pkt      (void *data,char *fname,int *error);
  68.  
  69. /* bbs/mailer-specific functions called by 3mailin.c (you write 'em) */
  70.  
  71. int     import_3msg       (void *data,PHDR3 *pkt,MHDR3 *msg,char *body,
  72.                            int len,int *error);
  73. int     appendin_3msg     (void *data,PHDR3 *pkt,MHDR3 *msg,char *body,
  74.                            int len,int *error);
  75. int     check_3pkthdr     (void *data,char *fname,PHDR3 *pkt,int *error);
  76. int     check_3msghdr     (void *data,MHDR3 *msg,int *error);
  77. #ifdef TRANSLATING
  78.   void end_3msg (void *priv,PHDR3 *pkt3,MHDR3 *msg);
  79. #endif
  80.  
  81. /* functions for writing a type 3 ASCII packet (see 3mailout.c) */
  82.  
  83. void    finish_3pktpart   (int fhandle,int *error);
  84. int     write_3tag        (int fhandle,char *tag,char *data,int *error);
  85. int     write_3tags       (int fhandle,TAG3 *head,int *error);
  86. int     write_3pkthdr     (int fhandle,PHDR3 *cpkt,int *error);
  87. int     wopen_3pkt        (int fhandle,char *fname,PHDR3 *cpkt,int *error);
  88. int     wclose_3pkt       (int fhandle);
  89. int     write_3msghdr     (int fhandle,MHDR3 *cmsg,int *error);
  90. int     write_3msgtext    (int fhandle,char *text,int textlen,int *error);
  91.  
  92. /* display an error message to stdout (see 3aerror.c) */
  93.  
  94. void error3a (int error);
  95.  
  96. /* support functions (see 3supp.c) */
  97.  
  98. char *  fgets3            (char *buf,int buflen,int handle);
  99. char *  stripcr3          (char *str);
  100. int     stripjnk3         (char *str,int len);
  101. char *  strdup3           (char *dupme);
  102.